/*
 * @Author: Wushiqi
 * @Descripttion: 获取路由：遍历传入的菜单列表，拿取拼接路由所需的数据（path、name、title、component）
 * @Date: 2020-08-19 10:44:15
 * @LastEditor: Wushiqi
 * @LastEditTime: 2021-05-24 09:10:31
 */
// Layout组件是项目中的主页面，切换路由时，仅切换Layout中的组件
import Layout from '@/layout'
export function getAsyncRoutes(routes) {
  const res = []
  routes.forEach(route => { // 所有菜单都是二级结构，一级没有页面功能，所以只要添加二级菜单的路由
    if (route.childMenuInfoTreeSet.length !== 0) {
      const children = []
      route.childMenuInfoTreeSet.forEach(menu => { // 二级菜单需匹配页面
        let name = menu.componentName.split('/')[1]
        name = name.charAt(0).toUpperCase() + name.slice(1)
        children.push({
          path: menu.componentName,
          name,
          // 此处使用require，由于import会有奇怪的错误
          component: (resolve) => require([`@/views${menu.componentName}/index`], resolve),
          meta: { title: menu.menuName, cache: true }
        })
      })
      res.push({
        path: route.componentName,
        component: Layout,
        children: children
      })
    }
  })
  return res
}
